[% setvar title Perl 6 Summary for 2004-10-23 through 2004-11-01 %]
<div id="archive-notice">
    <h3>This file is part of the Perl 6 Archive</h3>
    <p>To see what is currently happening visit <a href="http://www.perl6.org/">http://www.perl6.org/</a></p>
</div>
<div class='pod'>
<a name='Perl 6 Summary for 2004-10-23 through 2004-11-01'></a><h1>Perl 6 Summary for 2004-10-23 through 2004-11-01</h1>
<p>All~</p>
<p>Welcome to another summary, this one being slightly delayed by Halloween.  Before I start off with perl6-language, let me remind all American readers to vote tomorrow.  Non-American readers should also vote, but it seems unlikely that your day of voting is tomorrow.  So without further ado,</p>
<a name='Perl 6 Language'></a><h2>Perl 6 Language</h2>
<a name='assorted questions'></a><h3>assorted questions</h3>
<p>Rich Morin wanted to know two things.  One, can he hook into function calls and just about everything else for his evil purposes.  Two, can he get floating point values which automagically track their rounding errors.  Austin Hastings pointed out that two would probably best be implemented as an opaque object whose value is a junction.  Luke Palmer demonstrated an evil way to embed whatever hooks he wanted by adding an extra layer to the grammar.  Somehow, I worry that shooting myself in the foot with this would take most of my body off...</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.language/browse_thread/thread/489b90e1e88b600d/cac0a1dd0ddb146c' target='_blank'>groups-beta.google.com</a>#cac0a1dd0ddb146c</p>
<a name='Perl6 backwards compatibility'></a><h3>Perl6 backwards compatibility</h3>
<pre> U. Ruirarchzatrea expressed a desire for perfect backwards compatibility to perl5 and a ponie too.  Matthew Walton, Brent 'Dax' Royal-Gordon, and Luke Palmer all told him that he could have a ponie, but it would not be perfect.</pre>
<p><a href='http://groups-beta.google.com/group/perl.perl6.language/browse_thread/thread/714a9351a1d83e03/effd1c27f662f09f' target='_blank'>groups-beta.google.com</a>#effd1c27f662f09f</p>
<a name='Perl 6 Compiler'></a><h2>Perl 6 Compiler</h2>
<p>Sadly google still does not mirror p6c.  Does anyone know someone who can be poked/prodded/pleaded with about this?  End result: no links for you!</p>
<a name='Status check?'></a><h3>Status check?</h3>
<p>Ovid popped in to see if he could find more detailed status info about the progress of p6c.  Patrick Michaud provided a slightly unsatisfying answer of &quot;not much longer&quot;, and Luke Palmer provided a slightly more detailed answer which can be summarized as &quot;not much longer&quot;.</p>
<a name='Parrot Internals'></a><h2>Parrot Internals</h2>
<a name='siva, the multifacetted pmc'></a><h3>siva, the multifacetted pmc</h3>
<p>Stephane Payrard asked about some problems he had encountered creating the magical all in one Siva PMC.  Leo provided a helpful prod towards LVALUE_CAST.  The other problems may or may not related to the mandrake cooker.  Hopefully someone will tell us.</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/aa4affe6c09558c3/679d42dee8ab722f?_done=/group/perl.perl6.internals/threads?start=30&' target='_blank'>groups-beta.google.com</a>&amp;_doneTitle=Back&amp;&amp;d#679d42dee8ab722f</p>
<a name='JITted functions calling external functions'></a><h3>JITted functions calling external functions</h3>
<p>Leo reported that, thanks to Jeff, one can now call into Parrot functions from JIT.  Yay!</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/80612e04c1b6dd78' target='_blank'>groups-beta.google.com</a></p>
<a name='make testexec'></a><h3>make testexec</h3>
<p>Currently make testexec will create and run a trivial &quot;hello world&quot; program for the exec core.  Leo would like it to run the full test suite instead.  This is a big thing, but would probably win you many friends and influence people.</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/56a22106a9dee0aa' target='_blank'>groups-beta.google.com</a></p>
<a name='Calling Conventions and Indirect Register Access'></a><h3>Calling Conventions and Indirect Register Access</h3>
<p>Leo provided several warning that he was going to make some big changes that would break any code that did not follow the calling conventions.  He went to implement and commit a whole lot of stuff.  I was impressed, and Dan later wondered if it was all done or not (as he wants to make some big changes soon).  Apparently it is for the most part.</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/b5c60cc142e7fe4a' target='_blank'>groups-beta.google.com</a></p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/4d31682cb1078ba7' target='_blank'>groups-beta.google.com</a></p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/64cf3b14288b99f4' target='_blank'>groups-beta.google.com</a></p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/9766daae118f45e0' target='_blank'>groups-beta.google.com</a></p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/745eae50409515db' target='_blank'>groups-beta.google.com</a></p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/95b0b650ef4242fd' target='_blank'>groups-beta.google.com</a></p>
<a name='Stalk Walking Bug'></a><h3>Stalk Walking Bug</h3>
<p>Nicholas Clark, with Leo's help, found a bug in the stalk walking code.  Apparrently, our mask for valid pointers was a little over zealous.  Nicholas checked in a quick fix.  Steve Fink has a few suggestions.</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/91d96b4b556581db' target='_blank'>groups-beta.google.com</a></p>
<a name='Register Allocation'></a><h3>Register Allocation</h3>
<p>Bill Coffman is continuing his amazing work with register allocation.  He has been making strong progress, and his new code is fast approaching production ready.  Unfortunately for Dan, it still has a few rough points and a small memory leak preventing it from being used on Dan's evil code.  Leo has been helping him along the entire time, and I predict that all of Bill's work will find its way into Parrot before the next summary.</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/75f2899dacb3c605' target='_blank'>groups-beta.google.com</a></p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/5bf000c56adf51d1' target='_blank'>groups-beta.google.com</a></p>
<a name='libjit'></a><h3>libjit</h3>
<p>Robert Spier pointed out the fairly nifty libjit.  Unfortunately, according to Leo, the current jit is far enough along that it would be too much work to switch.  I tend to believe him.</p>
<p><a href='http://www.southern-storm.com.au/libjit.html' target='_blank'>www.southern-storm.com.au</a></p>
<p>-- libjit</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/9b61366be89b4333' target='_blank'>groups-beta.google.com</a></p>
<a name='Looking for a hardware donation'></a><h3>Looking for a hardware donation</h3>
<p>H.Merijn Brand reminded Leo that he hadn't been contacted yet about some &quot;Diana&quot; menthol alcohol.  I was confused, but apparently Leo wasn't...</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/2865ee76953eaa8c' target='_blank'>groups-beta.google.com</a></p>
<a name='pmc/inode analogy'></a><h3>pmc/inode analogy</h3>
<p>StÃ©phane Payrard wanted to know if his analogy between pmcs and filesystems was correct.  Leo felt that it was mostly right and attempted to explain value/variable split.  Dan corrected Leo and went a little further.  What I have taken away from this is &quot;do not think of it in terms of high ;evel language operators, instead think of it in terms of C.  You get pointers and values (and you can point to a value).  Somethings do shallow copies (i.e. pointer copies) others do deep.</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/586edc8400935e26' target='_blank'>groups-beta.google.com</a></p>
<a name='pmc_type'></a><h3>pmc_type</h3>
<p>Nicholas Clark wanted to know what a pcm_type of 0 means.  The answer: no such type.  This led to StÃ©phane Payrard asking about pmc_type values for abstract types.  They don't get types cause they can't be directly instatiated.  This led Paolo Molaro to wonder about the virtue of having a system closer to C++ with array lookup for virtual functions.  Nicholas, Leo, and Paolo banged on this for a while and decided that there was some room for optimization...  Leo scares me when he optimizes...</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/0fffa129698f6d58' target='_blank'>groups-beta.google.com</a></p>
<a name='extend.c:Parrot_call'></a><h3>extend.c:Parrot_call</h3>
<p>Leo was bothered by the fact that Parrot_call only supported void return values.  So, much to Jeff Horwitz's joy, he fixed it.</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/cb9d20e1276a7b5f' target='_blank'>groups-beta.google.com</a></p>
<a name='Computed Goto Destroyer of Weak Machines!!!'></a><h3>Computed Goto Destroyer of Weak Machines!!!</h3>
<p>Vijay D. though that parrot was failing to install when it &quot;hung&quot; while compiling the computed goto cores.  Nick Glencross, Leo, Dan, Peter Sinnott, and Joshua Gatcomb all helped out explaining that cg is really hard on one's system and can be disabled with the --cgoto=0 flag to Configure.pl.</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/16147f1b2b5254c1' target='_blank'>groups-beta.google.com</a></p>
<a name='byte code'></a><h3>byte code</h3>
<p>Peter Hickman wanted to know if Perl 6 would be able to be distributed in bytecode.  The answer is yes, but this won't help you hide your source, as that will frequently be necessary meta-data.  It will, however, speed up your compilation and even allow mmap of the bytecode to share between threads.</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/2f7aafbb28c48b73' target='_blank'>groups-beta.google.com</a></p>
<a name='Pirate/Python'></a><h3>Pirate/Python</h3>
<p>Sam Ruby has continued his work on Python and is making good progress.  He was a little concerned about the speed issues of converting everything to dynclasses.  He and Leo talked out some alternatives.  Things are looking promising.</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/003c5617a51590fd' target='_blank'>groups-beta.google.com</a></p>
<a name='threading issues'></a><h3>threading issues</h3>
<p>Sam Ruby wanted to know about possible threading issues.  Leo requested that they let the sleeping giant lie for a while longer...</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/d1eff9f4feb029de' target='_blank'>groups-beta.google.com</a></p>
<a name='.include &quot;../relative path&quot;'></a><h3>.include &quot;../relative path&quot;</h3>
<p>Matt Diephouse added a todo item for .including with relative paths.  Takers welcome.</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/7d0b01a0276db6c3' target='_blank'>groups-beta.google.com</a></p>
<a name='Array fun'></a><h3>Array fun</h3>
<p>Bernhard Schmalhofer added a few benchmarks for the various array PMCs.  Leo applied the patch.</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/ee83b783cf9fa7be' target='_blank'>groups-beta.google.com</a></p>
<a name='Prederefed run cores'></a><h3>Prederefed run cores</h3>
<p>Leo had some concerns about the prederef run cores.  Dan suggested pitching them, but Leo opted to fix them instead.  Some discussion of their relative values ensued, then someone started using assembly to support their point and my head exploded.</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/e81606308b0919da' target='_blank'>groups-beta.google.com</a></p>
<a name='Parakeet in CVS'></a><h3>Parakeet in CVS</h3>
<p>Michel Pelletier has finally gotten himself a perl.org account.  The idea being that this would allow him to maintain Parakeet in CVS.  Unfortunately, Warnock Applies.</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/f87358640585d9dd' target='_blank'>groups-beta.google.com</a></p>
<a name='GC crach'></a><h3>GC crach</h3>
<p>Matt Diephouse found a way to make Parrot's GC crash.  Leo fixed it with alacrity.</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/bea31c8e9c293ea0' target='_blank'>groups-beta.google.com</a></p>
<a name='PPC JIT failure'></a><h3>PPC JIT failure</h3>
<p>Jeff Clites found and fixed a bug in the grow-the-arena threshold for JIT.  Leo seemed to feel that Jeff's solution was only a temporary one.</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/c0b58b8141e32015' target='_blank'>groups-beta.google.com</a></p>
<a name='AIX PPC JIT warning'></a><h3>AIX PPC JIT warning</h3>
<p>Jeff Clites voiced some concern over the state of JIT on AIX.  Adam Thomason told him &quot;Worry not, it's already broken.&quot;</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/aad34cadf9171483' target='_blank'>groups-beta.google.com</a></p>
<a name='Call Chain Access'></a><h3>Call Chain Access</h3>
<p>Approrpiately, Leo found himself playing with chains around Halloween.  He wondered if the call chain should have a PMC wrapper.  Dan figured not, as ops which do evil things would be unlikely to invoked accidentally, whereas a PMC might...</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/9057152ac53fbeaa' target='_blank'>groups-beta.google.com</a></p>
<a name='newsub opcodes'></a><h3>newsub opcodes</h3>
<p>Leo wanted to add some newsub opcodes to save allocations.  Dan countered that it would be a better thing to get constant pmcs working properly.  So Leo did.</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/e0c3a612af437191' target='_blank'>groups-beta.google.com</a></p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/4f7aaf88fbe38240' target='_blank'>groups-beta.google.com</a></p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/dc1256e10edfba3e' target='_blank'>groups-beta.google.com</a></p>
<a name='pmc2c2.pm features.'></a><h3>pmc2c2.pm features.</h3>
<p>Leo suggested a couple extra features that he wanted in pmc2c2.pm.  Sam Ruby supplied them.</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/1437beb43829afbc' target='_blank'>groups-beta.google.com</a></p>
<a name='Build dynclasses by default'></a><h3>Build dynclasses by default</h3>
<p>Will Coleda provided a patch to build dynclasses by default.  Leo is stalling before applying it, hoping to hear from other platforms.  Now would be a great time to chime in... ::cricket noises:::</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/8bcf88645937dd6a' target='_blank'>groups-beta.google.com</a></p>
<a name='warnings for duplicate vars'></a><h3>warnings for duplicate vars</h3>
<p>IMCC currently doesn't produce them.  Will Coleda supplied a naive attempt at this, but Leo decided it would be better to do it the elegant way and split the PASM and PIR lexers/parsers apart.</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/201d017771e90b71' target='_blank'>groups-beta.google.com</a></p>
<a name='Parrot on AMD64'></a><h3>Parrot on AMD64</h3>
<p>Brent 'Dax' Royal-Gordon managed to find an AMD64 for himself.  Not only am I jealous, but Parrot passes all expected tests on it when one adds --ccflags=':add{ -fPIC }'.</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/f51c79b9ee3e88c1' target='_blank'>groups-beta.google.com</a></p>
<a name='dynopslib troubles'></a><h3>dynopslib troubles</h3>
<p>Klaas-Jan discovered that dynopslib was failing.  Leo concurred and asked for patches.</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/0b73580517016105' target='_blank'>groups-beta.google.com</a></p>
<a name='makefile bad $(TOUCH)'></a><h3>makefile bad $(TOUCH)</h3>
<p>Jeff Clites noticed that Makefile's $(TOUCH) does not actually work on many platforms and suggested a solution.  Michael G Schwern suggested using ExtUtils::Command instead.  Who knows what will finally happen?</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/3e96694de431568e' target='_blank'>groups-beta.google.com</a></p>
<a name='Debug ops'></a><h3>Debug ops</h3>
<p>Dan wondered about adding some ops for debugging parrot code.  The response was favorable and enthusiastic.</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/05ca5d5769bd3f49' target='_blank'>groups-beta.google.com</a></p>
<a name='parrot -t massive leaks'></a><h3>parrot -t massive leaks</h3>
<p>Dan noticed that parrot -t leaks more memory then most cheap computers have.</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/36395b568b00e812' target='_blank'>groups-beta.google.com</a></p>
<a name='hash vtable'></a><h3>hash vtable</h3>
<p>Sam Ruby wondered about adding a hash vtable method for Python's benefit.  Dan seemed to think it was a good idea.</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/c15fda261df908d4' target='_blank'>groups-beta.google.com</a></p>
<a name='disassembler broken'></a><h3>disassembler broken</h3>
<p>Matt Diephouse noticed that the dissambler was broken.    Dan pointed out that he was testing it wrong.  But Matt soon discovered that it didn't work even if he tested it right.</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/af6518d3be348e9c' target='_blank'>groups-beta.google.com</a></p>
<a name='she-bangs for everybody'></a><h3>she-bangs for everybody</h3>
<p>James deBoer provided a patch adding shebang lines to config/*.pl.  Brent 'Dax' Royal-Gordon reasoned that these were unnessecary as these scripts should only be run by Configure.pl.  James countered by offering a patch removing all of the shebang lines from the other ones.  I like his style.</p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/6326b5574a97be00' target='_blank'>groups-beta.google.com</a></p>
<p><a href='http://groups-beta.google.com/group/perl.perl6.internals/browse_thread/thread/fccba601b9f123a7' target='_blank'>groups-beta.google.com</a></p>
<a name='The usual footer'></a><h2>The usual footer</h2>
<p>If you find these summaries useful or enjoyable, please consider
contributing to the Perl Foundation to help support the development of
Perl. You might also like to send feedback to ubermatt@gmail.com
<a href='http://donate.perl-foundation.org/' target='_blank'>donate.perl-foundation.org</a> -- The Perl Foundation
<a href='http://dev.perl.org/perl6/' target='_blank'>dev.perl.org</a> -- Perl 6 Development site
<a href='http://planet.parrotcode.org/' target='_blank'>planet.parrotcode.org</a> -- Parrot Blog aggregator</p>
</div>
